应用自定义渲染到 2D 节点,以创建后处理效果。 例如,您可以将 2D 节点中的颜色图像转换为灰度。
要应用自定义渲染到 2D 节点,使用 合成笔刷 (Composition Brush) 属性通过 材质笔刷 (Material Brush) 在屏幕上合成节点,并启用 力合成 (Force Composition) 属性。
要应用自定义渲染到 2D 节点:
attribute vec3 kzPosition; attribute vec2 kzTextureCoordinate0; uniform highp mat4 kzProjectionCameraWorldMatrix; varying mediump vec2 vTexCoord; void main() { precision mediump float; vTexCoord = kzTextureCoordinate0; gl_Position = kzProjectionCameraWorldMatrix * vec4(kzPosition.xyz, 1.0); }
ContentTexture
以定义渲染节点在渲染时提供的纹理RenderOpacity
以定义渲染节点的不透明度uniform sampler2D ContentTexture; varying mediump vec2 vTexCoord; uniform lowp float RenderOpacity; void main() { precision mediump float; //使用此算法可以将 2D 节点使用的 //纹理中的颜色转换为灰度。 //要整合到 Kanzi 渲染管道,着色器必须输出 //预乘阿尔法。 vec4 color = texture2D(ContentTexture, vTexCoord); float grayscale = dot(color.rgb, vec3(0.21, 0.72, 0.07)); float alpha = color.a * RenderOpacity; vec3 premultipliedColor = vec3(grayscale) * alpha; gl_FragColor = vec4(premultipliedColor, alpha); }